//#define _CRT_SECURE_NO_WARNINGS 1
//
//typdef struct ListNode 
//{
//    int val;
//    struct ListNode *next;
//}ListNode;
//
//
//void SListPopBack(ListNode** pphead)
//{
//    if ((*pphead)->next == NULL)
//    {
//        free(*pphead);
//        *pphead = NULL;
//    }
//    else
//    {
//        ListNode* tail = *pphead;
//        while (tail->next->next != NULL)
//        {
//            tail = tail->next;
//        }
//        free(tail->next);
//        tail->next = NULL;
//    }
//}
//
//struct ListNode* removeElements(struct ListNode* head, int val) {
//
//    if (head == NULL)
//    {
//        return head;
//    }
//    else
//    {
//        while (ListNode.val)
//        {
//            if (ListNode.val == val)
//            {
//                SListPopBack(&ListNode);
//            }
//            ListNode* cur = head;
//            cur = cur.next;
//        }
//    }
//    return ListNode;
//}